package cn.javass.dp.memento.example4;

/**
 * 定义一个命令的接口
 */
public interface Command {

    /**
     * 执行命令
     */
    void execute();

    /**
     * 撤销命令
     * @param memento 备忘录对象
     */
    void undo(Memento memento);

    /**
     * 恢复命令
     * @param memento
     */
    void redo(Memento memento);

    /**
     * 创建保存原发器对象的状态的备忘录对象
     * @return 创建好的备忘录对象 (存东西的人)
     */
    Memento createMemento();

}
